#include<stdio.h>
#include<stdlib.h>
#include<time.h>

#define NCOLORES 5 // definimos numero de colores en este caso 5 
#define NFICHAS 4 // definimos los arrays en este caso son cuatro fichas para ambos jugadores
#define NJUGADAS 7 // definimos los arrays en este caso son cuatro fichas para ambos jugadores
#define intentos 10  // definimos ni q sean 10 intentos
main(){
	int i;//primer contador
	int j;//segundo contador
	int x;//variable
	int jugada;// contador de jugada
	int finpartida;// bandera de acierto de la combinación. 0 al principio, 1 si acierto total
	char jugada1[NFICHAS];//arrays de las jugadas del primer jugador 
	char jugada2[NFICHAS];//arrays de las jugadas del segundo jugador
	const char colores[NCOLORES]={'R', 'A', 'V', 'N', 'B'};//arrays de los colores en este caso se asignan 5 con sus letras
	const char NOCOLOR='Z';//asignacion de  z para no color
	char retornocarro;// asignacion de retornocarro para q se coma el retorno abajo en el programa
	int negras, blancas;//asignacion de contador para negras y blancas

	srand(time(0));


//hacemos un bucle for donde el primer contador aumentara para que saque aleatoriamente una jugada y esta va a ser la jugada del primer jugador


	for(i=0;i<NFICHAS;i++){
		x=rand()%NCOLORES;//definimos la funcion rand para que saque aleatoriamente los colores 
		jugada1[i]=colores[x];//aqui guardaremos en x los colores de la primera jugada

	}
	for(i=0;i<NFICHAS;i++){//aqui saca en pantalla las fichas o colores  q ha sacado aleatoriamente, esto lo podemos quitar para q no de la respuesta solo para saber si funciona jeje
		printf(" %c ",jugada1[i]);
	}
	finpartida=0;
	for(jugada=0;jugada<NJUGADAS && !finpartida;jugada++){//hace un bucle for  para q saque la jugada del segundo jugador
		printf("\n\t Que colores crees que he puesto?\n");//le pregunta al usuario para q adivine la jugada
		for(i=0;i<NFICHAS;i++){//hace un bucle for  para q saque la jugada del segundo jugador
			scanf("%c",&jugada2[i]);
		}
		scanf("%c",&retornocarro);//aqui es donde se come el retornodecarro, hacemos un scanf para retorno de carro
		
		printf("\n\t Dices en serio que he puesto\n");// aqui la jugada del segundo jugador
		for(i=0;i<NFICHAS;i++){
			printf(" %c ",jugada2[i]);
		}
		printf("?\n");
	
		printf("Veamos cuantos aciertos...\n");//aqui le va a decir cuantos aciertos ha tenido osea blancas o negras
		negras=blancas=0;//inicializa el contador de negras y blancas a 0
		for(i=0;i<NFICHAS;i++){//hace un bucle for para q aumente el contador cada vez q encuentre  un negra
			if(jugada1[i]==jugada2[i]){//aqui comparamos los dos arrays para sacar las negras q tenga el segundo jugador
				negras++;
				jugada2[i]=NOCOLOR;// para q cuando encuentre una negra le asigne la z para q sea distinta y no volver a contarla
			}
			else
				for(j=0;j<NFICHAS;j++){// bucle for para q aumente el contador cada vez q encuentre una blanca, tenemos un contador q es j tiene q ser diferente para comparar el primero con el segundo contador
					if(jugada1[i]==jugada2[j]){//aqui comparamos los dos arrays para saber las blancas q tiene el segundo jugador
						blancas++;
						jugada2[i]=NOCOLOR;// para q cuando encuentre una blanca le asigne la z para q sea distinta y no vuelva a contarla
					}
				}
		}
		printf("Tu calificacion  es %d negras y %d blancas.\n", negras, blancas);// te da cuantas negras y blancas tiene
		if(negras==NFICHAS)
			finpartida=1;
		
	}  // fin del bucle de las jugadas
	if(finpartida!=0)
		printf("Has ganado\n");
	else
		printf("Has perdido\n");
}
